#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

#define FILENAME "log.txt"

// int main() {
//   close(0);
// //   close(1);
// //   close(2);
//   int fd = open(FILENAME, O_CREAT | O_TRUNC | O_WRONLY, 0666);
//   printf("%d\n", fd);
//   return 0;
// }

//---------------

// int main()
// {
//   const char* massage = "hello world\n";
//   close(1);
//   int fd = open(FILENAME, O_CREAT | O_APPEND | O_WRONLY, 0666);
//   // int fd = open(FILENAME, O_CREAT | O_TRUNC | O_WRONLY, 0666);
//   if(fd<0){
//     perror("open fail");
//   }
//   ssize_t wret = write(1, massage, strlen(massage));
//   if(wret<0){
//     perror("write fail");
//   }
//   close(fd);
//   return 0;
// }

//---------------

// int main()
// {
//   const char* massage = "hello massage\n";
//   int fd = open(FILENAME, O_WRONLY | O_TRUNC | O_CREAT, 0666);
//   dup2(fd, 1);
//   write(1, massage, strlen(massage));
//   //省略了调用失败的错误处理
//   close(fd);
//   return 0;
// }

// //---------------

// int main() {
//   char buf[1024];
//   int fd = open(FILENAME, O_RDONLY);
//   dup2(fd, 0);
//   // 省略了调用失败的错误处理
//   int len = read(0,buf,sizeof(buf));
//   buf[len] = '\0';
//   printf("%s\n", buf);
//   close(fd);
//   return 0;
// }

//---------------

// int main() {

//   fprintf(stdout, "normal stdout\n");
//   fprintf(stdout, "normal stdout\n");
//   fprintf(stdout, "normal stdout\n");
  
//   fprintf(stderr, "error stderr\n");
//   fprintf(stderr, "error stderr\n");
//   fprintf(stderr, "error stderr\n");

//   return 0;
// }


int main()
{
  // execl("/bin/ls","ls","-l","-a",NULL);
  execle();
  return 0;
}